package com.hs.srm.admin.modules.requisition.entity;

import java.io.Serializable;
import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;
import com.hs.srm.base.common.base.CloneableEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.hs.srm.base.common.annotation.DictMapping;
import com.hs.srm.base.common.utils.DictDataUtil.DictType;

/**
 * @author yanfei
 *
 * @date 2019年2月14日
 * 
 * 采购头信息
 */
@Setter
@Getter
@TableName("npro_purch_request_header")
@ToString
public class NproPurchRequestHeaderEntity implements Serializable, CloneableEntity<NproPurchRequestHeaderEntity> {

  private static final long serialVersionUID = 1L;

  public static final int YIBAOJIA = 4;// 供应商已报价

  public NproPurchRequestHeaderEntity() {
	super();
  }
  
  /*
   * PKID
  */
  @TableId(value = "pk_id", type = IdType.UUID)
  @Excel(name = "PKID", orderNum="1")
  private java.lang.String pkId;
  
  /*
   * 采购申请编码
  */
  @TableField("purch_request_code")
  @Excel(name = "采购申请编码", orderNum="2")
  
  private java.lang.String purchRequestCode;
  
  /*
   * 采购申请类型
  */
  @TableField("purch_request_type")
  @Excel(name = "采购申请类型", orderNum="3")
  @DictMapping(type = DictType.CGSQLX)
  private java.lang.String purchRequestType;
  
  /*
   * 申请人
  */
  @TableField("purch_request_staff")
  @Excel(name = "申请人", orderNum="4")
  private java.lang.String purchRequestStaff;
  
  /*
   * 申请部门
  */
  @TableField("purch_request_dept")
  @Excel(name = "申请部门", orderNum="5")
  @DictMapping(type = DictType.BM)
  private java.lang.String purchRequestDept;
  
  /*
   * 审批状态
  */
  @TableField("appr_status")
  @Excel(name = "审批状态", orderNum="6")
  private java.lang.String apprStatus;
  
  /*
   * 删除标志
  */
  @TableField("delete_flag")
  @Excel(name = "删除标志", orderNum="7")
  private java.lang.String deleteFlag;
  
  /*
   * 
  */
  @TableField("process_id_")
  @Excel(name = "", orderNum="8")
  private java.lang.Long processId;
  
  /*
   * 
  */
  @TableField("state_")
  @Excel(name = "", orderNum="9")
  private java.lang.String state;
  
  /*
   * 
  */
  @TableField("assignee_")
  @Excel(name = "", orderNum="10")
  private java.lang.String assignee;
  
  /*
   * 
  */
  @TableField("process_instance_id_")
  @Excel(name = "", orderNum="11")
  private java.lang.Long processInstanceId;
  
  /*
   * 
  */
  @TableField("total_pric")
  @Excel(name = "预估总价", orderNum="12")
  private java.math.BigDecimal totalPric;
  
  /*
   * 
  */
  @TableField("attribute2")
  @Excel(name = "", orderNum="13")
  private java.lang.String attribute2;
  
  /*
   * 
  */
  @TableField("attribute3")
  @Excel(name = "", orderNum="14")
  private java.lang.String attribute3;
  
  /*
   * 
  */
  @TableField("attribute4")
  @Excel(name = "", orderNum="15")
  private java.lang.String attribute4;
  
  /*
   * 
  */
  @TableField("attribute5")
  @Excel(name = "", orderNum="16")
  private java.lang.String attribute5;
  
  /*
   * 
  */
  @TableField("attribute6")
  @Excel(name = "", orderNum="17")
  private java.lang.String attribute6;
  
  /*
   * 
  */
  @TableField("attribute7")
  @Excel(name = "", orderNum="18")
  private java.lang.String attribute7;
  
  /*
   * 
  */
  @TableField("attribute8")
  @Excel(name = "", orderNum="19")
  private java.lang.String attribute8;
  
  /*
   * 
  */
  @TableField("attribute9")
  @Excel(name = "", orderNum="20")
  private java.lang.String attribute9;
  
  /*
   * 
  */
  @TableField("attribute10")
  @Excel(name = "", orderNum="21")
  private java.lang.String attribute10;

  /**
   * 创建人
   */
  @TableField("created_by")
  @Excel(name = "创建人", orderNum="22")
  private java.lang.String createdBy;

  /**
   * 创建人OA账号
   */
  @TableField("oa_account")
  @Excel(name = "创建人OA账号", orderNum="23")
  private java.lang.String OAccount;

  /**
   * 创建日期
  */
  @TableField("creation_date")
  @Excel(name = "创建日期", orderNum="24")
  private Date creationDate;

  /**
   * 修改人
   */
  @TableField("last_updated_by")
  @Excel(name = "修改人", orderNum="25")
  private java.lang.String lastUpdatedBy;

  /**
   * SRM接收请购单时间
   */
  @TableField("srm_receive_date")
  @JSONField(format = "yyyy-MM-dd")
  @Excel(name = "SRM接收请购单时间", orderNum="26")
  private Date srmReceiveDate;

  /**
   * 修改日期
  */
  @TableField("last_update_date")
  @Excel(name = "修改日期", orderNum="27")
  private java.sql.Date lastUpdateDate;

  /**
   * 货源状态
   */
  @TableField("goods_status")
  @Excel(name = "", orderNum="28")
  private int goodsStatus;

  @Override
public NproPurchRequestHeaderEntity clone() {
        try {
        return (NproPurchRequestHeaderEntity)super.clone();
        } catch(CloneNotSupportedException ex) {
        // TODO Auto-generated catch block
        ex.printStackTrace();
        }
        return null;
        }
}
